package com.boyunv.observer.example01;
/*
 *@description
 * 可共享的,具体享元类
 * z注意:在具体的享元类中,需要将内部状态和外部状态分开处理
 *@author boyunv
 *@create 2023/8/8 7:05
 *@version 1.0
 */

public class ConcreteFlyweight extends Flyweight{

 //内部状态: inState 作为一个成员变量,同一个享元对象的内部状态是一致的
 private String inState;

 public ConcreteFlyweight(String inState) {
  this.inState = inState;
 }

 /**
  * 外部状态,在使用的时候,通常有外部设置,不保存在享元对象中,即使是同一个对象
  * @param state
  */
 @Override
 public void operation(String state) {
  System.out.println("====享元对象的内部状态:"+inState+",外部状态,"+state);
 }
}
